package com.apigee.eventmanager;
import android.app.Activity;
import android.location.Address;
import android.location.Geocoder;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Switch;
import com.apigee.sdk.data.client.entities.Entity;
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Locale;
import java.util.Map;
public class CreateEventActivity extends Activity {
private static String TAG = "CreateEventActivity";
private Button cancelButton;
private EditText eventNameEditText;
private EditText cityEditText;
private EditText stateEditText;
private Switch publicSwitch;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_create_event);
cancelButton = (Button) this.findViewById(R.id.cancelButton);
eventNameEditText = (EditText) this.findViewById(R.id.eventNameEditText);
cityEditText = (EditText) this.findViewById(R.id.cityEditText);
stateEditText = (EditText) this.findViewById(R.id.stateEditText);
publicSwitch = (Switch) this.findViewById(R.id.publicSwitch);
cancelButton.setOnClickListener( new View.OnClickListener() {
@Override
public void onClick(View v) {
CreateEventActivity.this.finish();
}
});
((Button) this.findViewById(R.id.addEventButton)).setOnClickListener( new View.OnClickListener() {
@Override
public void onClick(View v) {
String eventNameText = eventNameEditText.getText().toString();
String cityText = cityEditText.getText().toString();
String stateText = stateEditText.getText().toString();
if( eventNameText.isEmpty() || cityText.isEmpty() || stateText.isEmpty() ) {
Client.showAlert(CreateEventActivity.this,"Error","All fields must be filled");
} else {
double latitude = 0.0;
double longitude = 0.0;
if(Geocoder.isPresent()){
try {
Geocoder geocoder = new Geocoder(getApplicationContext(), Locale.getDefault());
List<Address> addressList= geocoder.getFromLocationName(cityText + ", " + stateText, 1);
if( addressList != null && addressList.size() > 0 ) {
Address address = addressList.get(0);
latitude = address.getLatitude();
longitude = address.getLongitude();
}
} catch (IOException e) {
}
}
Map<String, Object> eventLocationMap = new HashMap<String, Object>();
eventLocationMap.put("latitude",latitude);
eventLocationMap.put("longitude",longitude);
Map<String, Object> eventEntityMap = new HashMap<String, Object>();
eventEntityMap.put("eventName", eventNameText);
eventEntityMap.put("location", eventLocationMap);
Client.sharedClient().createEvent(publicSwitch.isChecked(),eventEntityMap, new ClientCreateEventCallback() {
@Override
public void onSuccess(Entity createdEntity) {
CreateEventActivity.this.finish();
}
@Override
public void onFailed(String error) {
Client.showAlert(CreateEventActivity.this,"Error Creating Event",error);
}
});
}
}
});
}
}